﻿// Decompiled with JetBrains decompiler
// Type: MCM.Implementation.FluentBuilder.Models.DefaultSettingsPropertyButtonBuilder
// Assembly: MCMv5, Version=5.10.2.0, Culture=neutral, PublicKeyToken=null
// MVID: 7AB326B9-B2B4-41C2-9177-68E944071101
// Assembly location: D:\steam\steamapps\workshop\content\261550\2859238197\bin\Win64_Shipping_Client\MCMv5.dll

using MCM.Abstractions;
using MCM.Abstractions.FluentBuilder;
using MCM.Abstractions.FluentBuilder.Models;
using MCM.Abstractions.Wrapper;
using MCM.Common;
using System.Collections.Generic;

#nullable enable
namespace MCM.Implementation.FluentBuilder.Models
{
  internal sealed class DefaultSettingsPropertyButtonBuilder : 
    BaseDefaultSettingsPropertyBuilder<ISettingsPropertyButtonBuilder>,
    ISettingsPropertyButtonBuilder,
    ISettingsPropertyBuilder<ISettingsPropertyButtonBuilder>,
    ISettingsPropertyBuilder,
    IPropertyDefinitionButton,
    IPropertyDefinitionBase
  {
    public string Content { get; }

    internal DefaultSettingsPropertyButtonBuilder(
      string id,
      string name,
      IRef @ref,
      string content)
      : base(id, name, @ref)
    {
      this.SettingsPropertyBuilder = (ISettingsPropertyButtonBuilder) this;
      this.Content = content;
    }

    public override IEnumerable<IPropertyDefinitionBase> GetDefinitions()
    {
      return (IEnumerable<IPropertyDefinitionBase>) new IPropertyDefinitionBase[2]
      {
        (IPropertyDefinitionBase) new PropertyDefinitionButtonWrapper((object) this),
        (IPropertyDefinitionBase) new PropertyDefinitionWithIdWrapper((object) this)
      };
    }
  }
}
